In a video coding system, the video data are subject to various processing such as prediction, transform, quantization, deblocking, and adaptive loop filtering. Along the processing path in the video coding system, certain characteristics of the processed video data may be altered from the original video data due to the operations applied to the video data. For example, the mean value of the processed video may be shifted. Intensity shift may cause visual impairment or artifacts, which is especially more noticeable when the intensity shift varies from picture to picture. Therefore, the pixel intensity shift has to be carefully compensated or restored to alleviate the artifacts. Some intensity offset schemes have been used in the field. An intensity offset scheme proposed for High-Efficiency Video Coding (HEVC) classifies each pixel in the processed video data into one of multiple categories according to a context selected. For example, the context may be the pixel intensity of the processed video data. Alternatively, the context may be a combination of a current pixel and its surrounding pixels. Depending on where the adaptive offset is applied, the processed video data may represent the reconstructed video, the deblocked video, the adaptive loop filtered video, or other video in an intermediate stage. A characteristic measurement is derived according to the selected context and a category is determined according to the measured characteristic. For each category, intensity shift between the original pixels and the processed pixels is determined. The intensity shift is also called the “offset value” in this disclosure. Accordingly, the offset value is applied to the processed pixels belonging to the category to compensate the intensity shift. The process of intensity shift compensation or restoration for processed video data based on the category of each pixel is termed “sample adaptive offset (SAO)” in this disclosure.
The conventional SAO scheme often determines the category for the pixels on a picture by picture or slice by slice basis. However, picture contents often are dynamic and the characteristic may vary from region to region within a picture. Accordingly, a sample adaptive offset scheme is disclosed in U.S. Non-Provisional patent application, Ser. No. 13/158,427, entitled “Apparatus and Method of Sample Adaptive Offset for Video Coding”, filed on Jun. 12, 2011, where a group of SAO types are used to classify pixels in a region and each SAO type classifies the pixels into multiple categories. Some SAO types are associated with edge offset based classification, where the classification of a current pixel involves neighboring pixels. Since there are multiple SAO types, an encoder usually has to derive the offsets, add the offsets to pixels, and then compute distortion for each region with one SAO type. Therefore, the mode decision process of SAO needs to access the picture buffer many times. This multi-pass encoding algorithm may require a lot of external memory access leading to high power consumption and long latency. It is desirable to perform the mode decision for SAO without any additional picture buffer access. After all SAO parameters are derived, only one additional pass is required to perform offset compensation accordingly.
The SAO process is preferred to be done on a region by region basis to adapt to the local characteristics of the picture. Rate-distortion optimization (RDO) is often used to guide the mode decision (i.e., region splitting/region merging decision). Computations associated with the RDO process usually is very computational intensive. It is desirable to use a fast algorithm to speed up RDO process.